The Swift Java Compiler: Design and Implementation

نویسندگان

  • Daniel J. Scales
  • Keith H. Randall
  • Sanjay Ghemawat
  • Jeff Dean
چکیده

We have designed and implemented an optimizing Java compiler called Swift for the Alpha architecture. Swift translates Java bytecodes to optimized Alpha code, and uses static single assignment (SSA) form for its intermediate representation (IR). The Swift IR is relatively simple, but allows for straightforward implementation of all the standard scalar optimizations. The Swift compiler also implements method resolution and inlining, interprocedural alias analysis, elimination of Java run-time checks, object inlining, stack allocation of objects, and synchronization removal. Swift is written completely in Java and installs its generated code into a highperformance JVM that provides all of the necessary run-time facilities. In this paper, we describe the design and implementation of the Swift compiler system. We describe the properties of the intermediate representation, and then give details on many of the useful optimization passes in Swift. We then provide some overall performance results of the Swiftgenerated code for the SpecJVM98 benchmarks, and analyze the performance gains from various optimizations. We find that the Swift design is quite effective in allowing efficient and general implementations of numerous interesting optimizations. The use of SSA form, in particular, has been especially beneficial, and we have found very few optimizations that are difficult to implement in SSA.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Java Layers Compiler Design

This document contains a brief overview of the JL compiler’s design (version 2) [4]. The compiler supports bounded parametric classes and interfaces, mixins, static virtual typing, deep conformance, constructor propagation, and the class flattening optimization. The intent of this document is to provide a basis for an implementation plan, so we provide the detail needed to gauge the development...

متن کامل

Producing Network Applications Using Object-Oriented Petri Nets

The programming language Java has become and extremely popular language; many people are writing concurrent systems using Java. The design and implementation of concurrent Java programs is significantly more complex than sequential programs and the use formal method is seen as extremely beneficial for the design and implementation of such systems. The Petri net formalism [Petri 1962] can be use...

متن کامل

Exploiting the advantages of object oriented programming in the implementation of a database design environment

In this paper, we describe the implementation of a database design environment (Swift) that incorporates several novel features: Swift’s data modelling approach is derived from viewpoint-oriented methods; Swift is implemented in Java, which allows us to easily construct a client/server based environment; the repository is implemented using PostgreSQL, which allows us to store the actual applica...

متن کامل

Secure Web Applications via Automatic Partitioning

Swift is a new, principled approach to building web applications that are secure by construction. In modern web applications, some application functionality is usually implemented as client-side code written in JavaScript. Moving code and data to the client can create security vulnerabilities, but currently there are no good methods for deciding when it is secure to do so. Swift automatically p...

متن کامل

Design and Implementation of Pep, A Java Just-in-Time Translator

Java, a new object-oriented member of the C family of languages, has become popular in part because it emphasizes portability. Portability is achieved by compiling programs to machine-independent bytecodes that can be interpreted on a Java virtual machine. Unfortunately, interpreted performance does not match native code performance. A just-in-time compiler can regain performance without sacrif...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2000